table of contents
GLIB-MKENUMS(1) | User Commands | GLIB-MKENUMS(1) |
NAME¶
glib-mkenums - C language enum description generation utility
SYNOPSIS¶
glib-mkenums [options...] [files...]
DESCRIPTION¶
glib-mkenums is a small perl-script utility that parses C code to extract enum definitions and produces enum descriptions based on text templates specified by the user. Most frequently this script is used to produce C code that contains enum values as strings so programs can provide value name strings for introspection.
INVOCATION¶
glib-mkenums takes a list of valid C code files as input. The options specified control the text that is output, certain substitutions are performed on the text templates for keywords enclosed in @ characters.
Options¶
--fhead text
--fprod text
--ftail text
--eprod text
--vhead text
--vprod text
--vtail text
--comments text
--template file
/*** BEGIN section ***/ /*** END section ***/
where section may be file-header, file-production, file-tail, enumeration-production, value-header, value-production, value-tail or comment.
--help
--version
Production text substitutions¶
Certain keywords enclosed in @ characters will be substituted in the emitted text. For the substitution examples of the keywords below, the following example enum definition is assumed:
typedef enum {
PREFIX_THE_XVALUE = 1 << 3,
PREFIX_ANOTHER_VALUE = 1 << 4 } PrefixTheXEnum;
@EnumName@
@enum_name@
@ENUMNAME@
@ENUMSHORT@
@VALUENAME@
@valuenick@
@valuenum@
@type@
@Type@
@TYPE@
@filename@
@basename@
Trigraph extensions¶
Some C comments are treated specially in the parsed enum definitions, such comments start out with the trigraph sequence /*< and end with the trigraph sequence >*/. Per enum definition, the options "skip" and "flags" can be specified, to indicate this enum definition to be skipped, or for it to be treated as a flags definition, or to specify the common prefix to be stripped from all values to generate value nicknames, respectively. The "lowercase_name" option can be used to specify the word separation used in the *_get_type() function. For instance, /*< lowercase_name=gnome_vfs_uri_hide_options >*/.
Per value definition, the options "skip" and "nick" are supported. The former causes the value to be skipped, and the latter can be used to specify the otherwise auto-generated nickname. Examples:
typedef enum /*< skip >*/ {
PREFIX_FOO } PrefixThisEnumWillBeSkipped; typedef enum /*< flags,prefix=PREFIX >*/ {
PREFIX_THE_ZEROTH_VALUE, /*< skip >*/
PREFIX_THE_FIRST_VALUE,
PREFIX_THE_SECOND_VALUE,
PREFIX_THE_THIRD_VALUE, /*< nick=the-last-value >*/ } PrefixTheFlagsEnum;
SEE ALSO¶
06/05/2011 | User Commands |